#ifndef MOONLIGHT_OHOS_KEYBOARDCONTROLLER_H
#define MOONLIGHT_OHOS_KEYBOARDCONTROLLER_H

#include <ace/xcomponent/native_interface_xcomponent.h>

class KeyboardController {
protected:
    using KeyEvent = OH_NativeXComponent_KeyEvent;
    using KeyAction = OH_NativeXComponent_KeyAction;
    using KeyCode = OH_NativeXComponent_KeyCode;

public:
    KeyboardController();
    virtual ~KeyboardController();

    /**
     * 
     * @param comp
     * @param win
     * @param event
     * @return true if handled by us, otherwise false
     */
    virtual bool handle(OH_NativeXComponent *const comp, void *const win, KeyEvent &event);

};

#endif //MOONLIGHT_OHOS_KEYBOARDCONTROLLER_H
